﻿import type { ISysGroup, ISysPersonContract, IFileAttachment } from '@/type/fileattachment'
export interface ISysHrRenewRequestBill {
  ID?: string | null;
  PersonId: string | null;
  StaffNo: string | null;
  Name: string | null;
  PersonContractId: string | null;
  PersonContract?: ISysPersonContract;
  EmploymentType: string | null;
  ContractType: string | null;
  ContractNo: string | null;
  SignDate: Date | null;
  ExpireDate: Date | null;
  ContractFiles: string | null;
  ContractFile?: IFileAttachment;
  Approver: string | null;
  ApprovalTime: Date | null;
  OrgId: string | null;
  GroupId: string | null;
  Group?: ISysGroup;
  BillCode: string | null;
  BillStatus: number | null | string;
  WorkflowStatus: number | null | string;
  Remark: string | null
}

// 合同文件参数接口
export interface IContractFileParam {
  FileId: string;
  Order: number;
}

export interface ISysHrRenewRequestBillVm {
  Entity: ISysHrRenewRequestBill;
  ActionName: string | null;
  IsMyApprove: boolean | null;
  Remark: string | null;
  SelectedContractFilesIds: IContractFileParam[] | null;
}

export interface ISysHrRenewRequestBillView extends ISysHrRenewRequestBill {

  ActionNames?: string;

}

export interface ISysHrRenewRequestBillQuery {
  StaffNo?: string
  Name?: string
  EmploymentType?: string
  ContractType?: string
  ContractNo?: string
  Approver?: string
  ApprovalTime?: Date
  GroupId?: string
  BillCode?: string
  BillStatus?: number
  WorkflowStatus?: number
}

// 员工搜索请求参数接口
export interface ISysPersonSearchQuery {
  Name?: string;      // 员工姓名
  PageIndex?: number; // 页码
  State?: string;     // 员工状态
  StaffNo?: string;   // 员工工号
}

// 员工信息接口
export interface ISysPerson {
  Age: number;
  ArchiveLocation: string;
  ArchiveNo: string;
  BirthDate: string;
  BonusAccount: string;
  BonusBank: string;
  ContractEndDate: string;
  ContractNo: string;
  ContractStartDate: string;
  Email: string;
  EmploymentType: string;
  Gender: string;
  GroupName: string;
  HighestEducation: string;
  Hobbies: string;
  HomeAddress: string;
  HouseholdRegistration: string;
  ID: string;
  IdCardNo: string;
  MaritalStatus: string;
  Name: string;
  NativePlace: string;
  Order: number;
  PartyBranch: string;
  Phone: string;
  ResignationReason: string;
  SalaryAccount: string;
  SalaryBank: string;
  StaffNo: string;
  State: string;
}

// 员工搜索响应接口
export interface ISysPersonSearchResponse {
  Code: number;
  Data: ISysPerson[];
  Msg: string;
  Count?: number;
  PageCount?: number;
  Page?: number;
}

// 合同选择器选项接口
export interface IPersonContractOption {
  Disabled: boolean;
  ParentId: string;
  Selected: boolean;
  Text: string;
  Value: string;
}